/* Пример программы для доступа к DS1307 */

/* Микроконтроллер  AT90S2313, шина I2C DS1307 подключена к PORTB.
   Для сигнала sda используем 0 бит порта, 
   для scl - 1 бит порта (рис. 367) */

#include <90s2313.h> 	// подключаем  заголовочный файл используемого 
					// микроконтроллера AVR

/* Перед подключением файла ds1307.h, объявим порт, используемый 
   для подключения шины I2C и биты порта, используемые для 
   сигналов sda и scl */

/* Шина I2C подключена к PORTB микроконтроллера AT90S2313 
   Адрес порта находим в файле 90s2313.h в строке: sfrb PORTB=0x18; */
#asm 
.equ __i2c_port=0x18 
.equ __sda_bit=0 
.equ __scl_bit=1 
#endasm 

/* Теперь можно подключать Функции Часов Реального Времени DS1307 */ 
#include <ds1307.h> 

/* Основная функция программы */ 

void main(void) 
{ 
		unsigned char hour,minute,second;	// Объявляем переменные для 
								// хранения значений часов, 
// минут и секунд
		unsigned char date, month,year; 	// Объявляем переменные для 
								// хранения значений даты, 
// месяца и года

		/* инициализируем шину I2C */ 
		i2c_init();

		/* инициализируем Часы Реального Времени DS1307 
 	   Разрешим выход прямоугольных импульсов на выводе SQW/OUT;
	   	   Частота на выходе SQW/OUT = 1 Гц */ 
		rtc_init(0,1,0);

		rtc_get_time(&hour,&minute,&second); 	// читаем время из RTC DS1307
		rtc_get_date(&date,&month,&year);		// читаем дату из RTC DS1307
		... 					// далее в программе можно использовать 
							// текущее значение времени и даты
}
